opencart性能提速解决方案 缓存加速(打造高可用的opencart电商平台)(转载)
有很多人来问,opencart是不是一个小系统,只能做个人电子商务网站,在2013年时候就有几个客户让我帮着做opencart站点优化。
总结下来是这样:
opencart原系统本身适合做中小企业,数据库也就是几十张表,从安装文件大小也能看出都比其它任何一个电商系统小,当然大家希望它能撑起一个地球。
最近花了一周时间和一家高科技公司联合测试了其性能情况。
基础硬件环境:
CPU: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz (2核)
物理内存:2 GB (集成显卡会占用一部分,真实为1.833 GB)
空间大小:7.451 GB(含操作系统)
系统配置是不是比较差?
软件环境:
OS版本:CentOS release 6.4
PHP版本: 5.3.28
mysql版本: 5.5.37
nginx版本: 1.7.3
网络环境:
服务器位置:国内
网络带宽:共享50M
测试情况:
1、在没有做任何优化情况下
1.1当商品数量比较少,只有几十个情况
结果:这种情况下响应在3S内,都还正常。
1.2当商品数量增加到2000个后
结果:响应开始变慢,客户需要等待,页面请求响应在4S左右。
1.3当商品数量增加到10000个后
结果:响应变的很慢,客户访问不流畅,不能正常浏览。
网站慢的原因是什么?主要是网络带宽,数据库响应慢造成的,同样的网络环境,当增加商品数量后,瓶颈主要在数据库响应方面;
很多人增加网络带宽,提高服务器空间等做法都是徒劳的。
我检查了,发现都是数据库返回数据慢造成的,其中有很多表的关联(有的时候是业务逻辑复杂,有的时候是表设计上的问题),很多的统计数据类似 count(distinct *) 这样的,玩过数据库的人都知道这是致命的。
解决方案可以从几个方面入手:
1. 数据库缓存,使用一些缓存技术如 memory cache,这项技术需要占用较多的主机服务器内存。
2. 页面缓存, 将动态页面全部变成静态页面,客户访问的是静态文件,如: page chche
使用sphinx技术进行缓存。
3. 程序优化,优化SQL,全面优化后台的表,这个比较捞命,很少人这样做,除非是个大公司。
不过有些简单的SQL优化还是可以动手做做,提速也比较明显的
opencart提速优化(商品数小于5000个)
3. 高速缓存服务器,把数据库表加入缓存中,读写进行分离,并保持数据一致性,专门为对数据库访问性能有较高要求,需要承载大量商品信息,轻松应对复杂应用程序而设计。
下面我们在高速缓存服务器做了些测试,情况如下:
测试主机(资源已回收了)
将商品数量添加到20000个,用户页面浏览响应在 1S 左右。
我起了 400 个并发,返回测试记录如下:
Overview
================================================================================
Report name: 2014-7-10 17:19:44
Run on: 2014-7-10 17:19:44
Run length: 00:01:00
Web Application Stress Tool Version:1.1.293.1
Number of test clients: 1
Number of hits: 1770
Requests per Second: 29.43
Socket Statistics
--------------------------------------------------------------------------------
Socket Connects: 1826
Total Bytes Sent (in KB): 559.55
Bytes Sent Rate (in KB/s): 9.30
Total Bytes Recv (in KB): 17552.60
Bytes Recv Rate (in KB/s): 291.84
Socket Errors
--------------------------------------------------------------------------------
Connect: 3
Send: 0
Recv: 0
Timeouts: 0
RDS Results
--------------------------------------------------------------------------------
Successful Queries: 0
Script Settings
================================================================================
Server: 180.169.58.214
Number of threads: 400
Test length: 00:01:00
Warmup: 00:00:00
Cooldown: 00:00:00
Use Random Delay: No
Follow Redirects: Yes
Max Redirect Depth: 15
Clients used in test
================================================================================
localhost
Clients not used in test
================================================================================
Result Codes
Code Description Count
================================================================================
200 OK 1770
Page Summary
Page Hits TTFB Avg TTLB Avg Auth Query
================================================================================